home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1843 / 1843.xpi / content / firebug / consoleInjected.js < prev    next >
Text File  |  2010-01-15  |  5KB  |  104 lines

  1. /* See license.txt for terms of usage */
  2. function _FirebugConsole()
  3. {
  4.     this.log = function() { window._firebug.notifyFirebug(arguments, 'log', 'firebugAppendConsole'); }
  5.     this.debug = function() { window._firebug.notifyFirebug(arguments, 'debug', 'firebugAppendConsole'); }
  6.     this.info = function() { window._firebug.notifyFirebug(arguments, 'info', 'firebugAppendConsole'); }
  7.     this.warn = function() { window._firebug.notifyFirebug(arguments, 'warn', 'firebugAppendConsole'); }
  8.     this.error = function() { window._firebug.notifyFirebug(arguments, 'error', 'firebugAppendConsole'); }
  9.     this.exception = function() { window._firebug.notifyFirebug(arguments, 'exception', 'firebugAppendConsole'); }
  10.     this.assert = function() { window._firebug.notifyFirebug(arguments, 'assert', 'firebugAppendConsole'); }
  11.     this.dir = function() { window._firebug.notifyFirebug(arguments, 'dir', 'firebugAppendConsole'); }
  12.     this.dirxml = function() { window._firebug.notifyFirebug(arguments, 'dirxml', 'firebugAppendConsole'); }
  13.     this.trace = function firebugDebuggerTracer() { debugger; }
  14.     this.group = function() { window._firebug.notifyFirebug(arguments, 'group', 'firebugAppendConsole'); }
  15.     this.groupEnd = function() { window._firebug.notifyFirebug(arguments, 'groupEnd', 'firebugAppendConsole'); }
  16.     this.groupCollapsed = function() { window._firebug.notifyFirebug(arguments, 'groupCollapsed', 'firebugAppendConsole'); }
  17.     this.time = function() { window._firebug.notifyFirebug(arguments, 'time', 'firebugAppendConsole'); }
  18.     this.timeEnd = function() { window._firebug.notifyFirebug(arguments, 'timeEnd', 'firebugAppendConsole'); }
  19.     this.profile = function() { window._firebug.notifyFirebug(arguments, 'profile', 'firebugAppendConsole'); }
  20.     this.profileEnd = function() { window._firebug.notifyFirebug(arguments, 'profileEnd', 'firebugAppendConsole'); }
  21.     this.count = function() { window._firebug.notifyFirebug(arguments, 'count', 'firebugAppendConsole'); }
  22.     this.clear = function() { window._firebug.notifyFirebug(arguments, 'clear', 'firebugAppendConsole'); }
  23.  
  24.     // DBG this.uid = Math.random();
  25.  
  26.     this.notifyFirebug = function(objs, methodName, eventID)
  27.     {
  28.         var element = this.getFirebugElement();
  29.  
  30.         var event = document.createEvent("Events");
  31.         event.initEvent(eventID, true, false);
  32.  
  33.         window._firebug.userObjects = [];
  34.         for (var i=0; i<objs.length; i++)
  35.             window._firebug.userObjects.push(objs[i]);
  36.  
  37.         var length = window._firebug.userObjects.length;
  38.         element.setAttribute("methodName", methodName);
  39.  
  40.         // DBG element.setAttribute("uid", this.uid);
  41.  
  42.         // DBG if (length > 0)
  43.         // DBG     element.setAttribute("checkUserObjects", this.userObjects[0].toString());
  44.         // DBG else
  45.         // DBG     element.setAttribute("checkUserObjects", "no userObjects");
  46.  
  47.         // DBG dump("FirebugConsole("+this.uid+") dispatching event "+methodName+" via "+eventID+" with "+length+ " user objects, [0]:"+this.userObjects[0]+"\n");
  48.         //debugger;
  49.  
  50.         element.dispatchEvent(event);
  51.  
  52.         // DBG dump("FirebugConsole dispatched event "+methodName+" via "+eventID+" with "+length+ " user objects, [0]:"+this.userObjects[0]+"\n");
  53.  
  54.         var result;
  55.         if (element.getAttribute("retValueType") == "array")
  56.             result = [];
  57.  
  58.         if (!result && this.userObjects.length == length+1)
  59.             return this.userObjects[length];
  60.  
  61.         for (var i=length; i<this.userObjects.length && result; i++)
  62.             result.push(this.userObjects[i]);
  63.  
  64.         return result;
  65.     };
  66.  
  67.     this.getFirebugElement = function()
  68.     {
  69.         if (!this.element)
  70.             this.element = window._getFirebugConsoleElement();
  71.         return this.element;
  72.     },
  73.  
  74.     // ***********************************************************************
  75.     // Console API
  76.  
  77.     this.__defineGetter__("firebug", function(){
  78.         return this.getFirebugElement().getAttribute("FirebugVersion");
  79.     });
  80. }
  81.  
  82. window._getFirebugConsoleElement = function()  // could this be done in extension code? but only after load....
  83. {
  84.     var element = document.getElementById("_firebugConsole");
  85.     if (!element)
  86.     {
  87.         if (document.documentElement.nodeName == document.documentElement.nodeName.toUpperCase())
  88.             element = document.createElement("div");
  89.         else
  90.             element = document.createElementNS("http://www.w3.org/1999/xhtml","html:div"); // NS for XML/svg
  91.  
  92.         element.setAttribute("id", "_firebugConsole");
  93.         element.firebugIgnore = true;
  94.         element.setAttribute("style", "display:none");
  95.  
  96.         var body = document.body ? document.body : document.getElementsByTagName("body")[0];
  97.         if (!body)
  98.             body = document.documentElement;  // For non-HTML docs
  99.  
  100.         body.appendChild(element);
  101.     }
  102.     return element;
  103. };
  104.